package com.cuixichang.minimalism.transfer.factory;

import com.cuixichang.minimalism.transfer.dto.IMenuDTO;
import com.cuixichang.minimalism.transfer.page.IMenuPageRequest;
import com.cuixichang.minimalism.transfer.page.IMenuRequest;
import com.cuixichang.minimalism.transfer.vo.IMenuVO;
import com.cuixichang.minimalism.transfer.po.IMenu;
import org.mapstruct.Builder;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

/**
 * 系统菜单表对象适配器
 *
 * @author cuixichang
 * @date 2024-12-18
 */
@Mapper(builder = @Builder(disableBuilder = true))
public interface IMenuAssembler {

    IMenuAssembler INSTANCT = Mappers.getMapper(IMenuAssembler.class);

    IMenuDTO convertDto(IMenuRequest request);

    IMenuDTO convertDto(IMenuPageRequest request);

    IMenu convertPo(IMenuDTO dto);

    IMenuDTO convertDto(IMenu po);

    IMenuVO convertVo(IMenuDTO dto);
}